package edu.mis.modules.orderproduct;

import java.util.List;

import com.jfinal.plugin.activerecord.Record;

import edu.mis.model.Orderproduct;

public class OrderproductService {
	
	
	
	/**
	 * 查询所有订单
	 * @return
	 */
	public List<Record> findAllRecordWithName(){
		return Orderproduct.dao.findAllRecord();
	}
	
	
	/**
	 * 添加订单
	 * @param orderproduct
	 * @return
	 */
	public boolean register(Orderproduct orderproduct){
		if(orderproduct.findOrderproductByOrderproductNumber(orderproduct.getOrderproductNumber())==null){ //此处为业务逻辑，写在service里，不要写在model里。判断是否订单名重复，
			return orderproduct.save();
		}else{
			return false;
		}
		
	}
	
	/**
	 * 修改日志
	 * @param orderproduct
	 * @return
	 */
	public boolean updateOrderproduct(Orderproduct orderproduct){
		return orderproduct.update();
	}
	
	/**
	 * 根据ID得到订单
	 * @param orderproductId
	 * @return
	 */
	public Orderproduct findOrderproductById(int orderproductId) {
		return Orderproduct.dao.findById(orderproductId);
	}
	
	/**
	 * 根据订单编号得到订单
	 * @param orderproductNumber
	 * @return
	 */
	public Orderproduct findOrderproductByOrderproductNumber(int orderproductNumber) {
		return Orderproduct.dao.findOrderproductByOrderproductNumber(orderproductNumber);
	}
	
	/**
	 * 生成随机订单号
	 * @return
	 */
	public int ramdomOrderproductNumber() {
		int orderproductNumber = (int)(Math.random()*100000+1)*10;
		
		while (Orderproduct.dao.findOrderproductByOrderproductNumber(orderproductNumber)!=null) {
			orderproductNumber = (int)(Math.random()*100000+1)*10;
		}
			
		return orderproductNumber;
	}

	/**
	 * 订单支付
	 * @param orderproductId
	 * @param payId
	 * @return
	 */
	public boolean orderproductAuthorize(int orderproductId, int payId) {
		Orderproduct orderproduct = findOrderproductById(orderproductId);
		orderproduct.setPayId(payId);
		return orderproduct.update();
	}
	
	/**
	 * 删除订单
	 * @param orderproductId
	 * @return
	 */
	public boolean deleteOrderproductByOrderproductId(int orderproductId) {
		return Orderproduct.dao.deleteById(orderproductId);
    }
}
